#pragma once
#include "stdafx.h"

class EntityBody
{

protected:
	Ogre::Vector3 lastPosition;
	Ogre::Quaternion lastOrientation;

public:

	virtual void setPosition(Ogre::Vector3 position)=0;
	virtual Ogre::Vector3 getPosition()=0;

	virtual void setOrientation(Ogre::Quaternion orientation)=0;
	virtual Ogre::Quaternion getOrientation()=0;


	virtual void setLocalPosition(Ogre::Vector3 position)=0;
	virtual Ogre::Vector3 getLocalPosition()=0;

	virtual void setLocalOrientation(Ogre::Quaternion orientation)=0;
	virtual Ogre::Quaternion getLocalOrientation()=0;

	virtual void setLookAt(Ogre::Vector3 target)=0;
	virtual Ogre::Vector3 getFacingDir()=0;

	virtual void addForce(Ogre::Vector3 force)=0;
	virtual void addTorque(Ogre::Vector3 torque)=0;

	virtual Ogre::SceneNode* getParentNode()=0;

	virtual Ogre::Vector3 getLastPosition(){return lastPosition;}
	virtual Ogre::Quaternion getLastOrientation(){return lastOrientation;}

	virtual void killBody()=0;

	EntityBody(void){};
	virtual ~EntityBody(void){};
};

